<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组添加</title>
</head>
<body>
<script>

    // //向数组最后添加一位
    // let nums1 = [1,2,3,4];
    // function myconcat(nums1) {
    //     let newnums1 = [];
    //     for(let i = 0;i < nums1.length; i++){
    //         newnums1[i] = nums[i];
    //     }
    //     newnums1[nums1.length] = 0;
    //     nums1 = newnums1;
    //     return nums1;
    // }
    // function myPush(array,val) {
    //     nums1 = myconcat(array);
    //     nums1[nums1.length - 1] = val;
    // }
    // myPush(nums1,5);
    // myPush(nums1,7);
    // console.log(nums1);

    //console.log("-----------------------------------------------------------------");

    //完成删除最后一位操作
    // let nums2 = [1,2,3,4,5,6,7];
    // function myPop(nums2) {
    //     let newnums2 = [];
    //     for(let i = 0;i < nums2.length - 1; i++){
    //                 newnums2[i] = nums2[i];
    //             }
    //     nums2 = newnums2;
    //     return nums2;
    // }
    // console.log(myPop(nums2));

    //console.log("-----------------------------------------------------------------");

    //往数组第一位前添加
           //  0 1 2 3
    // let num3 = [1,2,3,4];
    // function myUnshift(array,val) {
    //     let newnums3 = [];
    //     for(let i = 0;i < array.length; i++){
    //         newnums3[i] = array[i];
    //     }
    //     newnums3[array.length] = 0;
    //     // nums3 = [1,2,3,4]
    //     //newnums3 = [1,2,3,4,0]
    //     for(let i = newnums3.length - 1;i > 0; i--){
    //         newnums3[i] = newnums3[i - 1];
    //     }
    //     newnums3[0] = val;
    //     num3 = newnums3;//[10,1,2,3,4]
    //     return num3;
    //     }
    // console.log(myUnshift(num3,10));
    // console.log(myUnshift(num3,11));

    //console.log("-----------------------------------------------------------------");

    //删除第一位
    // let nums4 = [8,7,6,4,4,1,2,3,4];
    // function myDelUnshift(nums4) {
    //     let newnums4 = [];
    //     for(let i = nums4.length - 1;i > 0; i--){
    //         newnums4[i - 1] = nums4[i];
    //     }
    //     nums4 = newnums4;
    //     return nums4;
    // }
    // newnum = myDelUnshift(nums4);
    // console.log(myDelUnshift(newnum));

    //console.log("-----------------------------------------------------------------");

    // let nums5 = [1,2,3,4,5,6];
    // // //        下标 删除个数  添加元素
    //  nums5.splice(3,4).toString();
    //  // 0,2===>3,4
    //  // 1,2===>1,4
    //  console.log(nums5.toString());
                    //数组  下标  删除个数  添加的值
    //           0 1 2 3 4 5
    // let nums5 = [1,2,3,4,5,6];//1,3,4,5,6

    //console.log("-----------------------------------------------------------------");

    //在任意位置删除任意数
    // function myDelSplice(nums5,index,delnum) {
    //    //  在任意位置添加一个数   myAddSplice
    //    // 扩容   根据下标平移   赋值
    //    //  在任意位置删除一个数   myDelSplice
    //     let newnums5 = [];
    //     if(index == 0){
    //         for(let i = 0; i < nums5.length - delnum;i ++) {
    //             newnums5[i] = nums5[i + delnum];
    //         }
    //     }else {
    //         for(let i = 0; i < index; i ++){
    //             newnums5[i] = nums5[i];
    //             let j = index;
    //             for(;j < nums5.length - delnum;j ++){
    //                 newnums5[j] = nums5[j + delnum];
    //             }
    //         }
    //     }
    //     nums5 = newnums5;
    //     return nums5;
    // }
    // console.log(myDelSplice(nums5,1,2));

    //console.log("-----------------------------------------------------------------");

    // 在任意位删除任意数，添加一个数
    //                    数组   下标  删除个数  添加的数
   //  function myAddSplice(nums5,index,delnum,addval) {
   //      //nums5 = myDelSplice(nums5,index,delnum);
   //      let newnums5 = [];
   //      if(index == 0){
   //          newnums5[0] = addval;
   //          for(let i = 1; i < nums5.length - delnum + 1;i ++) {
   //              newnums5[i] = nums5[i + delnum - 1];
   //          }
   //      }else {
   //          for(let i = 0; i < index; i ++){
   //              newnums5[i] = nums5[i];
   //              newnums5[index] = addval;
   //              let j = index + 1;
   //              for(;j <= nums5.length - delnum;j ++){
   //                  newnums5[j] = nums5[j + delnum - 1];
   //              }
   // //           0 1 2 3 4 5
   //          }//1,2,3,4,5,6
   //      }
   //      nums5 = newnums5;
   //      return nums5;
   //  }
   //  console.log(myAddSplice(nums5,0, 2, 3));
   //  console.log("----------------------------------------------------------");

    //console.log("-----------------------------------------------------------------");

    //在任意位置删除任意数添加任意数
    // let nums5 = [1,2,3,4,5,6];//1,3,4,5,6
    // function myAddSplice(nums5,index,delnum,...addval) {
    //     //nums5 = myDelSplice(nums5,index,delnum);
    //     let newnums5 = [];
    //     if(index == 0){
    //         for(let i = 0; i < addval.length; i++){
    //             newnums5[i] = addval[i];
    //         }
    //         for(let i = addval.length; i < nums5.length + addval.length - delnum;i ++) {
    //             newnums5[i] = nums5[i - delnum + 1];
    //         }
    //     }else {
    //         for(let i = 0; i < index; i ++){
    //             newnums5[i] = nums5[i];
    //         }
    //         for(let k = index; k < addval.length + index; k ++){
    //             newnums5[k] = addval[k - index];
    //         }
    //         for(let j = index + addval.length;j < nums5.length + addval.length - delnum;j ++){
    //             newnums5[j] = nums5[j - delnum + 1];
    //         }
    //          // 0 1 2 3 4 5
    //         //1,2,3,4,5,6
    //     }
    //     nums5 = newnums5;
    //     return nums5;
    // }
    // console.log(myAddSplice(nums5,3, 3, 7,8,9));
</script>
</body>
</html>